标注 (Tagger)
Tagger 用于给文本做词性、词元、语言/脚本、命名实体、情感、自定义标签(来自 Gazetteer)等标注。
构造
只声明你实际需要的 scheme —— 它们决定 tagger 做哪些分析。
Tag scheme
方法
setText(text: string): void
绑定要分析的文本。后续查询都基于它。
setLanguage(language: Language, range?: StringRange): void
为整段文本或某个子区间覆盖语言提示。
tag(at, unit, scheme): { tag: string | null, range } | null
查询单个 UTF-16 位置上的 tag。
tags(range, unit, scheme, options?): { tag: string | null, range }[]
枚举一个区间内的所有 tag。range 传 null 表示扫描全文。
options(TaggerOptions)可以跳过你不关心的 token:
omitWords/omitPunctuation/omitWhitespace/omitOtherjoinNames(把"John Smith"合并为单个 token)joinContractions(把"don't"合并为单个 token)
tagHypotheses(at, unit, scheme, maximumCount): { hypotheses, range }
返回某个位置上 top-K 个候选 tag,形如 { "Noun": 0.7, "Verb": 0.2, ... }。
enumerateNamedEntities(range?, options?): NamedEntityResult[]
对 tags(..., "word", "nameType", ...) 的便捷封装:只返回人名 / 地名 / 机构名,并自动启用 joinNames,多词姓名合并成单个实体。
sentimentScore(range?): number | null
返回情感打分([-1, 1],越正表示越积极)。要求构造时声明了 "sentimentScore"。打分从 range.location 开始,按段落粒度。
setGazetteers(gazetteers, scheme): void
为某个 scheme 挂上一个或多个 Gazetteer。Gazetteer 命中会覆盖系统模型对该 scheme 的判断。详见 Gazetteer。
